/* example13 */
#include <stdio.h>
#define N 3

int main() {
    double ident[N][N] = {{1, 2, 3}, {1, 2, 3}, {1, 2, 3}};
    int row, col;
    double *p = ident[0];
    int count = 1;
    for(; p < ident[N - 1] + N; p++) {
        if(count == 1) {
            *p = 1;
            count = N + 1;
        } else {
            *p = 0;
            count--;
        }
    }

//    for(int i = 0; i < N; i++) {
//        for(int j = 0; j < N; j++) {
//            printf("%g ", ident[i][j]);
//        }
//        printf("\n");
//    }

    p = &ident[0][0];
    for(int i = 1; p < ident[N - 1] + N; p++, i++) {
        printf("%g ", *p);
        if(i == N) {
            printf("\n");
            i = 0;
        }
    }
}

// answers
void answer() {
    double ident[N][N], *p;
    int num_zeros = N;

    for (p = &ident[0][0]; p <= &ident[N-1][N-1]; p++)
        if (num_zeros == N) {
            *p = 1.0;
            num_zeros = 0;
        } else {
            *p = 0.0;
            num_zeros++;
        }
}
